package com.bt.mapper;

import com.bt.dto.YddCatePageListDTO;
import com.bt.entity.YddCate;
import com.bt.vo.YddCateVO;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @Description TODO
 * @Author 青
 * @Date 2023-04-29 23:44
 */
@Mapper
public interface YddCateMapper {
    /**
     * 统计各分类下文章总数
     *
     * @return
     */

    List<YddCateVO> countCateArticleNum();

    @Select("SELECT COUNT(ydd_article.id) AS article_num\n" +
            "       FROM ydd_cate\n" +
            "               LEFT JOIN ydd_article ON ydd_cate.id = ydd_article.cateid\n" +
            "      WHERE ydd_article.status = 2;")
    Integer countArticleNum();

    /**
     * 统计分类总数
     *
     * @return
     */
    @Select("select count(*) from ydd_cate")
    Integer countCateNum();


    /**
     * 分类分页条件查询
     * @param yddCatePageListDTO
     * @return
     */
    Page<YddCate> pageQuery(YddCatePageListDTO yddCatePageListDTO);

    /**
     * 分类删除
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 分类添加
     * @param yddCate
     */
    void save(YddCate yddCate);

    /**
     * 分类详情
     * @param id
     * @return
     */
    YddCate query(Integer id);

    /**
     * 分类修改
     * @param yddCate
     */
    void update(YddCate yddCate);

    /**
     * 查询全部数据
     * @return
     */
    List<YddCate> getAll();

}
